<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>简介</title>
</head>
<div id="layout">
  <div id="layout-content"><div id="language.types.intro" class="sect1">
  <h2 class="title">简介</h2>
  
  <p class="simpara">
   PHP 支持 9 种原始数据类型。
  </p>
  
  <p class="para">
   四种标量类型：
  </p>

  <ul class="itemizedlist">

   <li class="listitem">
    <span class="simpara">
     <span class="type"><a href="language.types.boolean.html" class="type boolean">boolean</a></span>（布尔型）
    </span>
   </li>

   <li class="listitem">
    <span class="simpara">
     <span class="type"><a href="language.types.integer.html" class="type integer">integer</a></span>（整型）
    </span>
   </li>

   <li class="listitem">
    <span class="simpara">
     <span class="type"><a href="language.types.float.html" class="type float">float</a></span>（浮点型，也称作 <span class="type"><a href="language.types.float.html" class="type double">double</a></span>)
    </span>
   </li>

   <li class="listitem">
    <span class="simpara">
     <span class="type"><a href="language.types.string.html" class="type string">string</a></span>（字符串）
    </span>
   </li>

  </ul>

  <p class="para">
   三种复合类型：
  </p>

  <ul class="itemizedlist">

   <li class="listitem">
    <span class="simpara">
     <span class="type"><a href="language.types.array.html" class="type array">array</a></span>（数组）
    </span>
   </li>

   <li class="listitem">
    <span class="simpara">
     <span class="type"><a href="language.types.object.html" class="type object">object</a></span>（对象）
    </span>
   </li>

   <li class="listitem">
    <span class="simpara">
     <span class="type"><a href="language.types.callable.html" class="type callable">callable</a></span>（可调用）
    </span>
   </li>
  </ul>

  <p class="para">
   最后是两种特殊类型：
  </p>

  <ul class="itemizedlist">

   <li class="listitem">
    <span class="simpara">
     <span class="type"><a href="language.types.resource.html" class="type resource">resource</a></span>（资源）
    </span>
   </li>

   <li class="listitem">
    <span class="simpara">
     <span class="type"><a href="language.types.null.html" class="type NULL">NULL</a></span>（无类型）
    </span>
   </li>
   
  </ul>

  <p class="para">
   为了确保代码的易读性，本手册还介绍了一些<a href="language.pseudo-types.html" class="link">伪类型</a>：
  </p>

  <ul class="itemizedlist">
 
   <li class="listitem">
    <span class="simpara">
     <span class="type"><a href="language.pseudo-types.html#language.types.mixed" class="type mixed">mixed</a></span>（混合类型）
    </span>
   </li>
 
   <li class="listitem">
    <span class="simpara">
     <span class="type"><a href="language.pseudo-types.html#language.types.number" class="type number">number</a></span>（数字类型）
    </span>
   </li>
 
   <li class="listitem">
    <span class="simpara">
     <span class="type"><a href="language.pseudo-types.html#language.types.callback" class="type callback">callback</a></span>（回调类型，又称为 <span class="type"><a href="language.types.callable.html" class="type callable">callable</a></span>）
    </span>
   </li>
   
   <li class="listitem">
    <span class="simpara">
     <span class="type"><a href="language.pseudo-types.html#language.types.array-object" class="type array|object">array|object</a></span>（数组 | 对象类型）
    </span>
   </li>

   <li class="listitem">
    <span class="simpara">
     <span class="type"><span class="type void">void</span></span> （无类型）
    </span>
   </li>

  </ul>
  
  <p class="para">
   以及伪变量 <code class="parameter">$...</code>。
  </p>

  <p class="simpara">
   可能还会读到一些关于“双精度（double）”类型的参考。实际上
   double 和 float 是相同的，由于一些历史的原因，这两个名称同时存在。
  </p>
  
  <p class="simpara">
   变量的类型通常不是由程序员设定的，确切地说，是由 PHP
   根据该变量使用的上下文在运行时决定的。
  </p>

  <blockquote class="note"><p><strong class="note">Note</strong>: 
   <span class="simpara">
    如果想查看某个<a href="language.expressions.html" class="link">表达式</a>的值和类型，用
    <span class="function"><a href="var_dump.html" class="function">var_dump()</a></span> 函数。
   </span>

   <p class="para">
    如果只是想得到一个易读懂的类型的表达方式用于调试，用
    <span class="function"><a href="gettype.html" class="function">gettype()</a></span> 函数。要检验某个类型，<em class="emphasis">不要</em>用
    <span class="function"><a href="gettype.html" class="function">gettype()</a></span>，而用 <em>is_<span class="replaceable">type</span></em> 函数。以下是一些范例：
   </p>
   
   <div class="informalexample">
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php<br />$a_bool&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">TRUE</span><span style="color: #007700">;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;布尔值&nbsp;boolean<br /></span><span style="color: #0000BB">$a_str&nbsp;&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"foo"</span><span style="color: #007700">;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;字符串&nbsp;string<br /></span><span style="color: #0000BB">$a_str2&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'foo'</span><span style="color: #007700">;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;字符串&nbsp;string<br /></span><span style="color: #0000BB">$an_int&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">12</span><span style="color: #007700">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;整型&nbsp;integer<br /><br /></span><span style="color: #007700">echo&nbsp;</span><span style="color: #0000BB">gettype</span><span style="color: #007700">(</span><span style="color: #0000BB">$a_bool</span><span style="color: #007700">);&nbsp;</span><span style="color: #FF8000">//&nbsp;输出:&nbsp;&nbsp;boolean<br /></span><span style="color: #007700">echo&nbsp;</span><span style="color: #0000BB">gettype</span><span style="color: #007700">(</span><span style="color: #0000BB">$a_str</span><span style="color: #007700">);&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;输出:&nbsp;&nbsp;string<br /><br />//&nbsp;如果是整型，就加上&nbsp;4<br /></span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">is_int</span><span style="color: #007700">(</span><span style="color: #0000BB">$an_int</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$an_int&nbsp;</span><span style="color: #007700">+=&nbsp;</span><span style="color: #0000BB">4</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #FF8000">//&nbsp;如果&nbsp;$bool&nbsp;是字符串，就打印出来<br />//&nbsp;(啥也没打印出来)<br /></span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">is_string</span><span style="color: #007700">(</span><span style="color: #0000BB">$a_bool</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"String:&nbsp;</span><span style="color: #0000BB">$a_bool</span><span style="color: #DD0000">"</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</code></div>
    </div>

   </div>
  </p></blockquote>

  <p class="simpara">
   如果要将一个变量强制转换为某类型，可以对其使用<a href="language.types.type-juggling.html#language.types.typecasting" class="link">强制转换</a>或者 <span class="function"><a href="settype.html" class="function">settype()</a></span> 函数。
  </p>

  <p class="simpara">
   注意变量根据其当时的类型在特定场合下会表现出不同的值。更多信息见<a href="language.types.type-juggling.html" class="link">类型转换的判别</a>。此外，还可以参考
   <a href="types.comparisons.html" class="link">PHP 类型比较表</a>看不同类型相互比较的例子。
  </p>
 </div></div></div></body></html>